package io.wdb.modules.generator.generator.dao;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;

import io.wdb.modules.generator.generator.entity.MetadataResponse;
import io.wdb.modules.generator.generator.entity.UserChargeLogEntity;
import io.wdb.modules.generator.generator.entity.UserInfoEntity;
import io.wdb.modules.generator.generator.entity.statistics.CapitalStatistics;
import io.wdb.modules.generator.generator.entity.web.DaysQueryRequest;
import io.wdb.modules.manager.sys.dao.BaseDao;


/**
 * 
 * 
 * @author wdb
 * @email admin@wdb007.com
 * @date 2017-11-30 15:15:36
 */
@Mapper
public interface UserChargeLogDao extends BaseDao<UserChargeLogEntity> {

	UserChargeLogEntity queryObjectByUserId(Long id);

	UserChargeLogEntity getUserRefundLog(Long id);

	UserChargeLogEntity queryAuditRefundLog(UserInfoEntity infoEntity);

	UserChargeLogEntity queryOperateRefundLog(UserInfoEntity infoEntity);

	String statisticalDepositDay(Map<String, Object> params);

	BigDecimal newDeposit(Map<String, Object> params);

	List<MetadataResponse> newBalance(Map<String, Object> params);

	List<MetadataResponse> newBalanceUser(Map<String, Object> params);

	BigDecimal newRefund(Map<String, Object> params);
	@Deprecated
	BigDecimal totalDeposit();
	@Deprecated
	BigDecimal totalCash();
	@Deprecated
	String totalCashUser();
	@Deprecated
	String totalRefundDepositUser();
	@Deprecated
	String totalRefundDeposit();
	@Deprecated
	String totalAvailDepositUser();
	@Deprecated
	BigDecimal currentDayDeposit(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String currentDayDepositUser(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String currentDayRefundDepositUser(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String currentDayRefundDeposit(DaysQueryRequest daysQueryRequest);

	String daysTotalDepositUser(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String daysTotalDeposit(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String daysCapitalTotalRefundDeposit(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String daysTotalRefundDepositUser(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String daysEachDepositUser(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String daysEachRefundDepositUser(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String daysEachDeposit(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String daysEachRefundDeposit(DaysQueryRequest daysQueryRequest);
	@Deprecated
	String daysCapitalTotalDeposit(DaysQueryRequest daysQueryRequest);

	CapitalStatistics daysAvailableDeposit(DaysQueryRequest daysQueryRequest);

	CapitalStatistics daysAvailableDepositUser(DaysQueryRequest daysQueryRequest);

	CapitalStatistics daysCash(DaysQueryRequest daysQueryRequest);

	CapitalStatistics daysCashUser(DaysQueryRequest daysQueryRequest);

	CapitalStatistics daysRefundDepositUser(DaysQueryRequest daysQueryRequest);

	CapitalStatistics daysRefundDeposit(DaysQueryRequest daysQueryRequest);

	CapitalStatistics daysDepositUser(DaysQueryRequest daysQueryRequest);

}
